home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / pcboard / newflg51.zip / NEWFLAG.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-01-25  |  7KB  |  598 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  TBOOLEAN002(23)
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Integer  INTEGER002
  25.     String   STRING002
  26.     String   TSTRING003(102)
  27.     String   TSTRING004(102)
  28.     String   STRING005
  29.     String   TSTRING006(23)
  30.     String   TSTRING007(23)
  31.     String   STRING008
  32.     String   STRING009
  33.     String   STRING010
  34.     String   STRING011
  35.     String   STRING012
  36.     String   STRING013
  37.     String   STRING014
  38.     Int      INT002
  39.     Int      TINT003(23)
  40.     Int      INT004
  41.     Int      INT005
  42.     Int      INT006
  43.     Int      INT007
  44.     Int      INT008
  45.     Int      INT009
  46.     Int      INT010
  47.     Int      INT011
  48.     Int      INT012
  49.     Int      INT013
  50.     Declare  Function FUNCTION001(String STRING015) Boolean
  51.     Declare  Procedure PROC001(String STRING001, Int INT001, Integer INTEGER001)
  52.     Declare  Procedure PROC002()
  53.     Declare  Procedure PROC003()
  54.     Declare  Procedure PROC004()
  55.     Declare  Procedure PROC005()
  56.     Declare  Procedure PROC006()
  57.     Declare  Procedure PROC007()
  58.     Declare  Procedure PROC008()
  59.     Declare  Procedure PROC009()
  60.     Declare  Procedure PROC010()
  61.     Declare  Procedure PROC011()
  62.     Declare  Procedure PROC012()
  63.     Declare  Procedure PROC013()
  64.     Declare  Procedure PROC014()
  65.     Declare  Procedure PROC015()
  66.     Declare  Procedure PROC016()
  67.     Declare  Procedure PROC017()
  68.  
  69. ;------------------------------------------------------------------------------
  70.  
  71.     Goto LABEL001
  72.     End
  73.  
  74. ;------------------------------------------------------------------------------
  75.  
  76.     Procedure PROC001(String STRING001, Int INT001, Integer INTEGER001)
  77.  
  78.     If (Crc32(0, STRING001) / 5 + INT001 == INTEGER001) Then
  79.         BOOLEAN001 = 1
  80.     Else
  81.         BOOLEAN001 = 0
  82.     Endif
  83.  
  84.     EndProc
  85.  
  86.     :LABEL001
  87.     INT012 = 100
  88.     INT002 = 0
  89.     If (Exist(PPEPath() + "FLAG" + String(PcbNode()) + ".@@@")) Then
  90.         Delete PPEPath() + "FLAG" + String(PcbNode()) + ".@@@"
  91.         KbdStuff Chr(13)
  92.         End
  93.     ElseIf (Exist(PPEPath() + "VIEW" + String(PcbNode()) + ".@@@")) Then
  94.         Wait
  95.         FOpen 1, PPEPath() + "VIEW" + String(PcbNode()) + ".@@@", 0, 0
  96.         FGet 1, INT002
  97.         FGet 1, STRING005
  98.         FGet 1, INT006
  99.         FGet 1, INT007
  100.         For INT004 = 1 To 23
  101.             FGet 1, TSTRING007(INT004)
  102.             FGet 1, TINT003(INT004)
  103.             FGet 1, TSTRING006(INT004)
  104.         Next
  105.         FClose 1
  106.         Delete PPEPath() + "VIEW" + String(PcbNode()) + ".@@@"
  107.         RestScrn
  108.         BOOLEAN004 = 1
  109.     ElseIf (Exist(PPEPath() + "END" + String(PcbNode()) + ".@@@")) Then
  110.         Delete PPEPath() + "END" + String(PcbNode()) + ".@@@"
  111.         KbdStuff "N" + Chr(13)
  112.         End
  113.     Else
  114.         If (AnsiOn()) Goto LABEL002
  115.         DispFile PPEPath() + "PROMPT2.DAT", 0
  116.         End
  117.     Endif
  118.     :LABEL002
  119.     PROC014()
  120.     PROC001(STRING010, 12995, INTEGER002)
  121.     PROC015()
  122.     PROC002()
  123.     PROC011()
  124.     End
  125.  
  126. ;------------------------------------------------------------------------------
  127.  
  128.     Procedure PROC002()
  129.  
  130.     If (BOOLEAN004) Goto LABEL003
  131.     DispFile PPEPath() + "PROMPT1.DAT", 0
  132.     PROC003()
  133.     PROC005()
  134.     :LABEL003
  135.     PROC007()
  136.     :LABEL004
  137.     If (BOOLEAN003) Goto LABEL005
  138.     STRING009 = Upper(Inkey())
  139.     Select Case (STRING009)
  140.         Case "8"
  141.             STRING009 = "UP"
  142.         Case "2"
  143.             STRING009 = "DOWN"
  144.     End Select
  145.     Select Case (STRING009)
  146.         Case " ", Chr(13)
  147.             PROC006()
  148.         Case "UP"
  149.             PROC004()
  150.         Case "DOWN"
  151.             PROC005()
  152.         Case "Q"
  153.             For INT004 = 1 To 23
  154.                 If (TSTRING007(INT004) <> "") STRING008 = STRING008 + " " + TSTRING007(INT004)
  155.             Next
  156.             If (STRING008 <> "") Then
  157.                 KbdStuff "F" + STRING008 + Chr(13)
  158.                 FCreate 1, PPEPath() + "END" + String(PcbNode()) + ".@@@", 1, 0
  159.                 FPut 1, "Leave this file alone!! ;)"
  160.                 FClose 1
  161.             Else
  162.                 KbdStuff "N"
  163.             Endif
  164.             End
  165.         Case "N", "PGDN"
  166.             BOOLEAN003 = 1
  167.         Case "V"
  168.             PROC013()
  169.         Case "?", "H"
  170.             PROC012()
  171.         Case "!"
  172.             PROC010()
  173.     End Select
  174.     Goto LABEL004
  175.     :LABEL005
  176.  
  177.     EndProc
  178.  
  179.  
  180. ;------------------------------------------------------------------------------
  181.  
  182.     Procedure PROC003()
  183.  
  184.     INT009 = 1
  185.     While (INT009 > 0) Do
  186.         ScrFile INT009, STRING005
  187.         If (INT009 <> 0) Then
  188.             TSTRING006(INT009) = STRING005
  189.             TINT003(INT009) = INT009
  190.             TBOOLEAN002(INT009) = FUNCTION001(STRING005)
  191.             Inc INT009
  192.         Endif
  193.     EndWhile
  194.  
  195.     EndProc
  196.  
  197.  
  198. ;------------------------------------------------------------------------------
  199.  
  200.     Procedure PROC004()
  201.  
  202.     INT008 = INT002 - 1
  203.     While ((INT008 <> 0) && (TSTRING006(INT008) == "")) Do
  204.         INT008 = INT008 - 1
  205.     EndWhile
  206.     If (INT008 <> 0) Then
  207.         INT002 = INT008
  208.         PROC007()
  209.     Endif
  210.  
  211.     EndProc
  212.  
  213.  
  214. ;------------------------------------------------------------------------------
  215.  
  216.     Procedure PROC005()
  217.  
  218.     INT008 = INT002 + 1
  219.     While ((INT008 <> 24) && (TSTRING006(INT008) == "")) Do
  220.         Inc INT008
  221.     EndWhile
  222.     If (INT008 <> 24) Then
  223.         INT002 = INT008
  224.         PROC007()
  225.     Else
  226.         BOOLEAN003 = 1
  227.     Endif
  228.  
  229.     EndProc
  230.  
  231.  
  232. ;------------------------------------------------------------------------------
  233.  
  234.     Procedure PROC006()
  235.  
  236.     If (TSTRING007(INT002) == TSTRING006(INT002)) Then
  237.         TSTRING007(INT002) = ""
  238.         PROC007()
  239.     Else
  240.         TSTRING007(INT002) = TSTRING006(INT002)
  241.         PROC007()
  242.     Endif
  243.  
  244.     EndProc
  245.  
  246.  
  247. ;------------------------------------------------------------------------------
  248.  
  249.     Procedure PROC007()
  250.  
  251.     If (((INT002 > 0) && (INT002 < 24)) && (TSTRING006(INT002) <> "")) Then
  252.         PROC008()
  253.         If (INT007 > 0) Then
  254.             AnsiPos 1, INT007
  255.             Print STRING012 + TSTRING006(INT006)
  256.         Endif
  257.         AnsiPos 1, TINT003(INT002)
  258.         INT007 = GetY()
  259.         INT006 = INT002
  260.         If (TBOOLEAN002(INT002) == 1) Then
  261.             Print STRING014 + TSTRING006(INT002) + "@X0F"
  262.             Goto LABEL006
  263.         Endif
  264.         Print STRING013 + TSTRING006(INT002) + "@X0F"
  265.         :LABEL006
  266.         STRING002 = TSTRING006(INT002)
  267.         If (TSTRING007(INT002) == STRING002) Then
  268.             Print "@X8E", Chr(251)
  269.             Goto LABEL007
  270.         Endif
  271.         Print "@X0F "
  272.         :LABEL007
  273.         PROC009()
  274.     Endif
  275.  
  276.     EndProc
  277.  
  278.  
  279. ;------------------------------------------------------------------------------
  280.  
  281.     Procedure PROC008()
  282.  
  283.     INT010 = GetX()
  284.     INT011 = GetY()
  285.  
  286.     EndProc
  287.  
  288.  
  289. ;------------------------------------------------------------------------------
  290.  
  291.     Procedure PROC009()
  292.  
  293.     AnsiPos INT010, INT011
  294.  
  295.     EndProc
  296.  
  297.  
  298. ;------------------------------------------------------------------------------
  299.  
  300.     Procedure PROC010()
  301.  
  302.     SaveScrn
  303.     Cls
  304.     Print "@X0E@POFF@"
  305.     For INT004 = 1 To 23
  306.         FreshLine
  307.         Print TINT003(INT004), " ", TSTRING006(INT004), " ", TBOOLEAN002(INT004)
  308.     Next
  309.     AnsiPos 30, 1
  310.     Print "Filenum: ", INT002
  311.     AnsiPos 30, 2
  312.     Print "OLDFILEPOS: ", INT007
  313.     AnsiPos 30, 3
  314.     Print "OLDFILENUM: ", INT006
  315.     AnsiPos 30, 23
  316.     Print "Press any key to continue..."
  317.     While ((Inkey() == "")) Print ""
  318.     Print "@PON@"
  319.     RestScrn
  320.  
  321.     EndProc
  322.  
  323.  
  324. ;------------------------------------------------------------------------------
  325.  
  326.     Procedure PROC011()
  327.  
  328.     For INT004 = 1 To 23
  329.         If (TSTRING007(INT004) <> "") STRING008 = STRING008 + " " + TSTRING007(INT004)
  330.     Next
  331.     If (STRING008 <> "") Then
  332.         KbdStuff "F" + STRING008 + Chr(13)
  333.         FCreate 1, PPEPath() + "FLAG" + String(PcbNode()) + ".@@@", 1, 0
  334.         FPut 1, "Leave this file alone!! ;)"
  335.         FClose 1
  336.     Else
  337.         KbdStuff Chr(13)
  338.     Endif
  339.     If (BOOLEAN001) Goto LABEL008
  340.     Cls
  341.     PrintLn "@X0EUnregistered!!!"
  342.     For INT005 = 1 To 5
  343.         Print "."
  344.         Delay 4
  345.     Next
  346.     :LABEL008
  347.  
  348.     EndProc
  349.  
  350.  
  351. ;------------------------------------------------------------------------------
  352.  
  353.     Procedure PROC012()
  354.  
  355.     SaveScrn
  356.     If (BOOLEAN001) Goto LABEL009
  357.     Cls
  358.     PrintLn "@X0EUnregistered!!!"
  359.     For INT005 = 1 To 10
  360.         Print "."
  361.         Delay 5
  362.     Next
  363.     :LABEL009
  364.     Cls
  365.     DispFile PPEPath() + "HELP", 2 + 1 + 4
  366.     Wait
  367.     RestScrn
  368.  
  369.     EndProc
  370.  
  371.  
  372. ;------------------------------------------------------------------------------
  373.  
  374.     Procedure PROC013()
  375.  
  376.     SaveScrn
  377.     If (BOOLEAN001) Goto LABEL010
  378.     Cls
  379.     PrintLn "@X0EUnregistered!!!"
  380.     For INT005 = 1 To 10
  381.         Print "."
  382.         Delay 5
  383.     Next
  384.     :LABEL010
  385.     Cls
  386.     PrintLn "@X0FViewing file @X09", TSTRING006(INT002)
  387.     FCreate 1, PPEPath() + "VIEW" + String(PcbNode()) + ".@@@", 1, 0
  388.     FPutLn 1, INT002
  389.     FPutLn 1, STRING005
  390.     FPutLn 1, INT006
  391.     FPutLn 1, INT007
  392.     For INT004 = 1 To 23
  393.         FPutLn 1, TSTRING007(INT004)
  394.         FPutLn 1, TINT003(INT004)
  395.         FPutLn 1, TSTRING006(INT004)
  396.     Next
  397.     FClose 1
  398.     KbdStuff "V " + TSTRING006(INT002)
  399.     End
  400.  
  401.     EndProc
  402.  
  403.  
  404. ;------------------------------------------------------------------------------
  405.  
  406.     Procedure PROC014()
  407.  
  408.     FOpen 2, PPEPath() + "NEWFLAG.CFG", 0, 0
  409.     FGet 2, STRING010
  410.     FGet 2, STRING011
  411.     FGet 2, INTEGER002
  412.     FGet 2, STRING012
  413.     FGet 2, STRING013
  414.     FGet 2, STRING014
  415.     FClose 2
  416.  
  417.     EndProc
  418.  
  419.  
  420. ;------------------------------------------------------------------------------
  421.  
  422.     Function FUNCTION001(String STRING015) Boolean
  423.  
  424.     Int      INT013
  425.  
  426.     FUNCTION001 = 0
  427.     For INT013 = 3 To INT012
  428.         If (STRING015 == TSTRING003(INT013)) Then
  429.             FUNCTION001 = 1
  430.             INT013 = INT012
  431.             Continue
  432.         Endif
  433.         If (TSTRING003(INT013) == "") Then
  434.             INT013 = INT012
  435.         Endif
  436.     Next
  437.  
  438.     EndFunc
  439.  
  440.  
  441. ;------------------------------------------------------------------------------
  442.  
  443.     Procedure PROC015()
  444.  
  445.     If (Exist(PPEPath() + "FLAG" + String(CurConf()) + ".DBF")) Goto LABEL011
  446.     TSTRING004(1) = "Name,C,20,0"
  447.     TSTRING004(2) = "Lastnum,N,2,0"
  448.     For INT004 = 3 To INT012 + 2
  449.         TSTRING004(INT004) = "FILE" + String(INT004 - 2) + ",C,12,0"
  450.     Next
  451.     DCreate 1, PPEPath() + "FLAG" + String(CurConf()) + ".DBF", 0, TSTRING004(BOOLEAN000)
  452.     DAdd 1
  453.     DGo 1, 1
  454.     PROC017()
  455.     Goto LABEL012
  456.     :LABEL011
  457.     DOpen 1, PPEPath() + "FLAG" + String(CurConf()) + ".DBF", 0
  458.     :LABEL012
  459.     If (Exist(PPEPath() + "FLAG" + String(CurConf()) + ".NDX")) Goto LABEL013
  460.     DnCreate 1, PPEPath() + "FLAG" + String(CurConf()) + ".NDX", "Name"
  461.     Goto LABEL014
  462.     :LABEL013
  463.     DnOpen 1, PPEPath() + "FLAG" + String(CurConf()) + ".NDX"
  464.     :LABEL014
  465.     DGo 1, 1
  466.     If (DSeek(1, U_Name())) Goto LABEL015
  467.     DAdd 1
  468.     DGo 1, DRecCount(1)
  469.     DPut 1, "Name", U_Name()
  470.     DPut 1, "Lastnum", "1"
  471.     Goto LABEL016
  472.     :LABEL015
  473.     DSeek 1, U_Name()
  474.     PROC016()
  475.     :LABEL016
  476.  
  477.     EndProc
  478.  
  479.  
  480. ;------------------------------------------------------------------------------
  481.  
  482.     Procedure PROC016()
  483.  
  484.     DGet 1, "Name", TSTRING003(1)
  485.     DGet 1, "Lastnum", TSTRING003(2)
  486.     For INT004 = 1 To INT012
  487.         DGet 1, "FILE" + String(INT004), TSTRING003(INT004 + 2)
  488.         TSTRING003(INT004 + 2) = RTrim(TSTRING003(INT004 + 2), " ")
  489.         If (TSTRING003(INT004 + 2) == "") INT004 = INT012
  490.     Next
  491.  
  492.     EndProc
  493.  
  494.  
  495. ;------------------------------------------------------------------------------
  496.  
  497.     Procedure PROC017()
  498.  
  499.     DPut 1, "Name", TSTRING003(1)
  500.     DPut 1, "Lastnum", TSTRING003(2)
  501.     For INT004 = 1 To INT012
  502.         DPut 1, "FILE" + String(INT004), TSTRING003(INT004 + 2)
  503.     Next
  504.  
  505.     EndProc
  506.  
  507.  
  508. ;------------------------------------------------------------------------------
  509. ;
  510. ; Usage report (before postprocessing)
  511. ;
  512. ; ■ Statements used :
  513. ;
  514. ;    7       End
  515. ;    6       Cls
  516. ;    2       Wait
  517. ;    90      Goto 
  518. ;    61      Let 
  519. ;    16      Print 
  520. ;    4       PrintLn 
  521. ;    54      If 
  522. ;    3       DispFile 
  523. ;    3       FCreate 
  524. ;    2       FOpen 
  525. ;    5       FClose 
  526. ;    13      FGet 
  527. ;    2       FPut 
  528. ;    7       FPutLn 
  529. ;    3       Delete 
  530. ;    3       Delay 
  531. ;    2       Inc 
  532. ;    7       KbdStuff 
  533. ;    7       AnsiPos 
  534. ;    1       FreshLine
  535. ;    3       SaveScrn
  536. ;    3       RestScrn
  537. ;    1       ScrFile 
  538. ;    17      EndProc
  539. ;    1       EndFunc
  540. ;    1       DCreate 
  541. ;    1       DOpen 
  542. ;    1       DnCreate 
  543. ;    1       DnOpen 
  544. ;    2       DAdd 
  545. ;    3       DGo 
  546. ;    1       DSeek 
  547. ;    3       DGet 
  548. ;    5       DPut 
  549. ;
  550. ;
  551. ; ■ Functions used :
  552. ;
  553. ;    1       /
  554. ;    94      +
  555. ;    3       -
  556. ;    23      ==
  557. ;    10      <>
  558. ;    13      <
  559. ;    12      <=
  560. ;    3       >
  561. ;    24      >=
  562. ;    50      !
  563. ;    28      &&
  564. ;    15      ||
  565. ;    1       Upper()
  566. ;    7       Chr()
  567. ;    1       RTrim()
  568. ;    3       U_Name()
  569. ;    2       Inkey()
  570. ;    19      String()
  571. ;    6       CurConf()
  572. ;    20      PPEPath()
  573. ;    10      PcbNode()
  574. ;    5       Exist()
  575. ;    1       AnsiOn()
  576. ;    1       GetX()
  577. ;    2       GetY()
  578. ;    1       Crc32()
  579. ;    1       DRecCount()
  580. ;    1       DSeek()
  581. ;
  582. ;------------------------------------------------------------------------------
  583. ;
  584. ; Analysis flags : No flag
  585. ;
  586. ;------------------------------------------------------------------------------
  587. ;
  588. ; Postprocessing report
  589. ;
  590. ;    12      For/Next
  591. ;    3       While/EndWhile
  592. ;    16      If/Then or If/Then/Else
  593. ;    2       Select Case
  594. ;
  595. ;------------------------------------------------------------------------------
  596. ;                 AEGiS Corp - Break the routines, code against the machines!
  597. ;------------------------------------------------------------------------------
  598.